Visual Basic.NET(VB .NET)是基于
微软.NET Framework之上的面向对象的
编程语言。VB .NET是微软在2002年开发的一种简单、高级、面向对象的编程语言。它是
Visual Basic 6.0的继承者,是在Microsoft
.NET框架上实现的,支持面向对象的概念,如抽象、封装、继承和多态性。因此,一切都在
VB中进行。
产生背景
1991年4月,Visual Basic诞生,Visual Basic 1.0 Windows版本发布。这个连接
编程语言和用户界面的进步被称为Tripod(有些时候叫做
Ruby),最初的设计是由
阿兰·库珀(Alan Cooper)完成的。 1992年9月,Visual Basic 1.0 DOS版本发布。
1998年夏天,VB6.0发布。
2001年,Visual Basic .NET和.NET Framework发布。Visual Basic .NET正式诞生。
2005年,微软宣布将不会再对非.NET版本的VB进行支持。
2010年,Visual Basic .NET随Visual Studio 2010发布,不再提供单独的Visual Basic .NET IDE。
VB .NET是构建于.Net framework之上,同属
Basic系列语言,又同为微软所开发,语法上有一定的相似或沿袭是很正常的,但不能因此认为VB .NET是VB的升级版。
微软为使VB开发者更容易转到VB .NET,兼容一些
VB6函数和库的用法,但是比不上.NET语言中自带的可替换的函数和库来得高效,所以应该尽量使用.NET下的新方法。微软还提供了VB到VB .NET的自动
转换器,虽几经改进,但仍无法转换全部代码,几乎所有非小型程序都需要人工修改以完成编译。为了运行优化,大多程序需要大量工作去重构。
VB .NET丢掉了许多不再发行的VB6中使用的大量语言constructs和
用户界面功能,并且对保留下来的东西也改变了语意。其实不应该再把VB和VB .NET做功能上的比较,因为它们除了有些语法相似外,可以说是完全不同的两种语言。
Visual Basic .NET与VB都代表了Basic系列语言的编码风格,Visual Basic .NET是这种编码风格在.NET平台上的继承,而不是同系列语言VB的沿袭。
发展历程
Visual Basic .NET 2002
2002年
Visual Basic .NET 问世,此后Visual Basic 包含在
Visual Studio套装中。该版本又被称为
VB 7.0,是与C#一起在2002年发布的最初始的VB.net版本。C#是一门新设计.Net语言并且语法上和Java有一定的相似性,所以被大力宣传为
微软对付JAVA的王牌,受到媒体极力关注。然而VB.NET则相反被错误地认为仅仅是VB的一个升级(故有时被称为VB7),它的受
关注度也因此较低,当然VB社区以及喜欢Basic系列风格的语言的人还是很关注它的。那些试用过此版VB.NET的人在层层幕布下发现一个强大却艰深的语言。不过任何一种语言都是有弱点的,当然后面这一点也是.NET语言的共性,那就是运行的计算机上必须装相应版本的.Net framework。
Visual Basic .NET 2003
该版本是和.NET Framework 1.1一起发布的。新功能包括对.NET Compact Framework的支持和更好的VB升迁向导。并改进了运行状况,
IDE稳定性(尤其是后台
编译器),以及运行时RunTime稳定性。另外,VB.NET2003还有一个学院版Visual Studio .NET 2003 Academic Edition (VS03AE),它是分发给各国某些学者免费使用的版本。
Visual Basic .NET 2005
该版本是VB.Net的
重大转变。但是这个版本的 Visual Studio 仍然还是面向 .NET 框架的(版本2.0)。它同时也能开发
跨平台的
应用程序,如开发使用
微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。
Visual Basic .NET 2008
Visual Basic 2008于2008年2月1日发布。通过几年的发展,它已成为一种专业化的开发语言和环境。用户可用 Visual Basic 快速创建 Windows 程序,还可以编写企业水平的
客户/服务器程序及强大的数据库应用程序。
Visual Studio 2010
Visual Studio 2010于2010年4月12日上市,其中包含 Visual Basic .NET 2010 。Visual Studio是
微软公司推出的
开发环境,是最流行的Windows平台应用程序开发环境。Visual Studio 2010
集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了
NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向
Windows 7的应用程序。除了
Microsoft SQL Server,它还支持
IBM DB2和
Oracle数据库等。
从该版本开始VB.NET已没有单独发售的IDE了,微软给Visual Basic .NET 以及C#开发者的IDE就只有Visual Studio 了。该版本增加了modern(原
metro)风格的支持等众多新特性。
增加了大量新特性,提升编写效率。对编译器和开发环境优化,提高编译速度,重构代码和解决错误。最明显的14项改进见参考资料的14 Top Improvements in Visual Basic 14。
主要功能
Visual Basic .NET的
应用范围包括Windows桌面、Web等。由于改动太大,导致VB.NET对VB的向后
兼容性不好,在业界引起不小的争议。VB.NET是“...中间
解释性语言”,这种说法极
不准确,甚至完全错误。可能原编辑者是指的编译器会先将源码翻译成MSIL(Microsoft Intermediate Language)
中间语言这回事,但这和“解释性语言”有很大差别。
运行环境
.NET语言,包括VB.NET,它们所开发的程序
源代码并不是直接编译成能够直接在操作系统上执行的
二进制本地代码,而是被编译成为
中间代码,然后通过
.NET Framework的通用语言
运行时(
CLR)——执行。 所有的.Net编程语言都被编译成这种被称为MSIL(Microsoft Intermediate Language )的中间代码,这与
Java的
字节码类似。因此虽然最终的程序在表面上仍然与传统意义上的
可执行文件都具有“.exe”的
后缀名。但是实际上,如果计算机上没有安装.Net Framework,那么这些程序将不能够被执行。在程序执行时,.Net Framework将中间代码翻译成为二进制
机器码,从而使它得到正确的运行。最终的
二进制代码被存储在一个缓冲区中。所以一旦程序使用了相同的代码,那么将会调用缓冲区中的版本。这样如果一个.Net程序第二次被运行,那么这种翻译不需要进行第二次,速度会明显加快。
VB.NET代码之所以不直接编译成二进制机器码,是基于.NET跨平台这一目标的考虑。
语言特点
关键词
数据类型
运算符
*运算优先级:算术>连接>比较>
逻辑运算(用括号可改变优先级)
详细:
如果
表达式中出现几种运算,将按照预先确定的称为“
运算符优先级”的
顺序计算和解析各个部分。
当表达式包含不止一种
运算符时,则按照下列规则对其进行计算:
优先级顺序
运算符的计算优先级顺序如下:
求幂 (^)
一元标识和非(+、–)
取模 (Mod)
字符串连接 (&)
所有
比较运算符(=、、=、Is、IsNot、Like、TypeOf...Is)
非 (Not)
与 (And、AndAlso)
或 (Or、OrElse)
注释
字符串连接运算符 (&) 不是算术运算符,但它在优先级方面与算术运算符属于一组。
Is 和 IsNot 运算符是
对象引用比较运算符。 它们不比较两个对象的值,只确定两个对象变量是否指向相同的对象实例。
当具有相同优先级的运算符(例如乘法和除法)在表达式中一起出现时,编译器将按每个运算符出现的顺序从左至右进行计算。
Visual Basic 中的运算符具有“左结合性”。
重写优先级和结合性
可以使用括号强制表达式中的某些部分先于其他部分计算。 这会重写优先级顺序和左结合性。 Visual Basic 始终先执行括在
中括号内的操作,
再执行括号外的操作。然而,在括号内,它保持普通优先级和结合性,除非括号内再使用括号。
流程控制
*三元表达式:
IIf(Expression,TruePart,FalsePart),是Microsoft.VisualBasic命名空间下的函数,不论结果如何都会计算TruePart和FalsePart的表达式,它有相应的
返回值。
较高版本中存在 If(Expression,TruePart,FalsePart) 运算符,与IIf的区别是它能
短路计算,Expression为真时不计算FalsePart,Expression为假时不计算TruePart
系统常量
Visual Basic .Net有很多系统常量,它们都在Microsoft.VisualBasic.Constants命名空间下,这些常量包括很多方面,如表示回车
换行符的
vbCrLf、表示逻辑结果的vbOK以及用在时间方面的vbShortDate等等。
对象关键词
Visual Basic .Net已经是一门完全面向对象的语言,以下是关于面向对象的一些关键词:
还有一些与上面对应的如可重载、必须继承等等在这里就没必要一一列出了。
表达式
在Visual Basic .Net使用
Function 或 Sub 关键字创建
Lambda 表达式,就像创建
标准函数或
子例程一样。 但是,Lambda 表达式包括在语句中。下面分别演示单行与多行。
用Function并返回值:
用Sub:
比起其他语言,Visual Basic .Net用Function和Sub更能
直观体现Lambda表达式的本质——
匿名方法。